package com.xtoad.ecms.baseinfo.service;

import com.xtoad.ecms.baseinfo.dto.MenuDTO;

import java.util.List;

/**
 * 菜单类Service
 *
 * @author xtoad
 * @date 2021/01/18
 */
public interface IMenuService {

    /**
     * 根据id查询菜单类
     *
     * @param id 菜单类id
     * @return 查询结果
     */
    MenuDTO getMenuById(final Long id);

    /**
     * 查询全部菜单类，不分页
     *
     * @return 查询结果
     */
    List<MenuDTO> getAllMenu();

    /**
     * 新增菜单类
     *
     * @param menuDTO 保存对象
     * @return 新增结果
     */
    MenuDTO insert(final MenuDTO menuDTO);

    /**
     * 删除菜单类
     *
     * @param id 删除对象id
     */
    void deleteById(final Long id);

    /**
     * 删除菜单类
     *
     * @param menuDTO 删除对象
     */
    void delete(final MenuDTO menuDTO);

    /**
     * 更新菜单类
     *
     * @param menuDTO 更新对象
     * @return 更新结果
     */
    MenuDTO update(final MenuDTO menuDTO);

    /**
     * 批量新增菜单类
     *
     * @param menuDTOList 新增对象
     * @return 新增结果
     */
    List<MenuDTO> batchInsert(final List<MenuDTO> menuDTOList);

    /**
     * 批量删除菜单类
     *
     * @param menuDTOList 删除对象
     */
    void batchDelete(final List<MenuDTO> menuDTOList);

    /**
     * 批量更新菜单类
     *
     * @param menuDTOList 更新对象
     * @return 更新结果
     */
    List<MenuDTO> batchUpdate(final List<MenuDTO> menuDTOList);

}
